package cn.e4j.modular.api.service;

import cn.e4j.core.dto.impl.Dto;
import cn.e4j.core.util.DateUtils;
import cn.e4j.core.util.ToolUtil;
import cn.e4j.modular.api.mapper.FwyyMapper;
import cn.e4j.modular.api.util.CommonUtils;
import cn.e4j.modular.crm.entity.MmrdT;
import cn.e4j.modular.crm.entity.MmrpT;
import cn.e4j.modular.system.entity.SysUser;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * 服务预约
 */
@Service
public class FwyyService{

    @Autowired
    private FwyyMapper fwyyMapper;


    /**
     * 获取已购设备列表
     *
     * @param inDto
     * @return
     */
    public List<Dto> getDeviceListData(Page<Object>page,Dto inDto) {
         List<Dto> list  = fwyyMapper.getDeviceListPage(page,inDto);
         list.forEach(dto->{
             List<Dto> mmrg = fwyyMapper.getMmrg100(dto);
            if (ToolUtil.isNotEmpty(mmrg)){
                dto.put("MMRG100",mmrg.get(0).get("MMRG100"));
            }else
                dto.put("MMRG100","3");//状态3为未解决
         });
         return list;
    }

    /**
     * 获取区域资料
     */
    public List<Dto> getAreaListData(Page<Object>page,Dto inDto) {
        return fwyyMapper.getAreaList(page,inDto);
    }

    /**
     * 服务预约提交
     */
    @Transactional
    public Boolean saveFwyy(SysUser user,Dto inDto) {
        MmrdT mmrd_tPO = CommonUtils.toJavaClass(inDto,MmrdT.class);
        String[] mmrd013List = mmrd_tPO.getMMRD013().split(",");
        for (int i = 0; i < mmrd013List.length; i++) {
            MmrpT mmrp_tPO = new MmrpT();
            mmrp_tPO.setMMRPENT(mmrd_tPO.getMMRDENT());
            mmrp_tPO.setMMRPDOCNO(mmrd_tPO.getMMRDDOCNO());
            mmrp_tPO.setMMRPSEQ(BigDecimal.valueOf(i + 1));
            mmrp_tPO.setMMRP001(mmrd013List[i]);
            mmrp_tPO.setMMRPUSER(user.getID());
            mmrp_tPO.setMMRPGRUP(user.getORG_ID());
            mmrp_tPO.setMMRPMODU(user.getID());
            mmrp_tPO.setMMRPTIME(DateUtils.formatDate(new Date(),DateUtils.PATTERN_HH_mm_ss));
            mmrp_tPO.setMMRPDATE(LocalDate.now());
            mmrp_tPO.setMMRPORIG(user.getORG_ID());
            mmrp_tPO.setMMRPORIU(user.getID());
            mmrp_tPO.insert();
        }
        return mmrd_tPO.insert();
    }

    /**
     * 获取故障类型
     *
     * @param inDto
     * @return
     */
    public List<Dto> getTags(Dto inDto) {
        inDto.put("MMRLENT", inDto.getString("ENT"));
        inDto.put("LANG", "2");
        List<Dto> list = fwyyMapper.getTags(inDto);
        return list;
    }

    /**
     * 获取服务区域的服务组织的人员
     *
     * @param inDto
     * @return
     */
//    public List<Dto> getGwaa(Dto inDto) {
//        inDto.put("GWAAENT", "80");
//        return fwyyMapper.getGwaa(inDto);
//    }

    /**
     * 获取服务区域
     *
     * @param inDto
     * @return
     */
    public List<Dto> getMmre(Dto inDto) {

        return fwyyMapper.getMmre(inDto);
    }
}
